1. Field of the Invention
The present invention relates to a tile-based graphics system and a method of operation of such a system.
2. Description of the Prior Art
Tile-based graphics systems have been developed where, for each frame to be displayed, the frame is partitioned into a plurality of areas called tiles. For each graphics primitive (typically a point, line or triangle) to be displayed in the frame, a binning unit is provided for performing a binning operation in order to determine which of the various tiles that graphics primitive intersects. In particular, the binning unit will typically specify a plurality of bins, for example one bin for each tile, and then based on coordinate data for the graphics primitive will determine which tile or tiles that graphics primitive intersects, and for each tile that is intersected, will record an identifier for that graphics primitive within the relevant bin.
Whilst there may be a one-to-one correspondence between bins and tiles, such that a separate bin is provided for each tile, it is not necessary to arrange the bins in this way, and instead multiple tiles can be associated with individual bins. This can enable a reduction in the amount of binning data that needs to be stored. However, irrespective of how the actual bins are constructed by the binning unit, on completion of the binning operation, all of the graphics primitives to be displayed within the frame will have been considered, and the binning data produced by the binning operation will provide a tile list for each tile. In particular, the tile list will identify, for the corresponding tile, the graphic primitives that intersect that tile.
Only once the binning operation is complete can the graphics system then proceed to generate the graphics data (also referred to herein as pixel data) for each tile. In particular, at this stage, the rasterization unit of the graphics system will be allocated a particular tile, and will generate the graphics data for the allocated tile dependent on the tile list applicable to that tile. For those graphics primitives identified in the tile list, the rasterization process determines which pixels the various graphics primitives lie in, and then applies a shader algorithm in order to generate pixel data for each pixel.
Since at the rasterization stage there are separate tile lists for each tile, then if multiple rasterization engines are provided within the graphics system, it is possible to parallelise the rasterization process by allocating different tiles to different rasterization engines, thereby improving performance.
However, before performing rasterization, it is typical to complete the binning operation since only when the binning operation is complete, and hence all graphics primitives for the frame have been considered, can the tile list for any particular tile be considered to be complete. The dedicated binning unit required to perform the binning operation occupies significant area within a graphics system employing a hardware binning unit. Even in systems where the binning operation is performed in software, the binning implementation is completely discrete from other parts to the graphics system. Further, irrespective of whether a hardware or software binning implementation is provided, the binning operation typically takes a significant amount of time, which adversely affects the overall performance of the graphics rendering process.
Accordingly, it would be desirable to provide an improved tile-based graphics system and method of operation of such a system.